The present invention relates to Domain Name Service (DNS) servers and the efficient maintenance of resource records in connection with DNS server operations. More particularly, a system and methods are provided for executing a set of computer-readable instructions for aging and scavenging DNS resource records.
Although TCP/IP uses IP addresses to locate and connect to hosts (computers and other TCP/IP network devices), users typically prefer to use friendly names. For example, users prefer the friendly name www.example.com, instead of its IP address, Num1.Num2.Num3.Num4, where Num1 through Num4 represent IP addresses. The Domain Name Service (DNS) system is used on the Internet to provide a mapping of the names to IP addresses. For instance, a DNS server may receive requests from networked client computers that wish to connect to a host server offering a desired application or servicexe2x80x94such as electronic mail or a search enginexe2x80x94but which do not know the server""s IP address. The client computer therefore queries the DNS server, which provides a suitable response depending on the type of information the client requests (e.g., a network address of the desired server).
As shown in FIG. 1, in the case of a request for a host Web page, a user or a client 110 may request an A DNS resource record (that maps a name to an IP address) for a computer name www.example.com, and the DNS server 10 processes the request in connection with a DNS database 20, returning an IP address, such as Num1.Num2.Num3.Num4, corresponding to the computer name requested.
In addition, DNS is used to map names to various types of data specified in the IETF standards. Such data may include, for example, the name of a machine that provides a specific service, the name of a DNS server authoritative for a particular portion (i.e., zone) of a namespace, etc.
The standards and specifications that span DNS are included in the Internet Engineering Task Force""s (IETF) Request for Comments (RFC) series, e.g. RFC 1034 and RFC 1035.
Originally, DNS was designed to support only static changes to a zone database, i.e. the addition, removal, or modification of resource records could only be performed by a DNS system administrator. This design is workable when the number of changes is small and updates occur infrequently, but can otherwise become unmanageable. With the introduction of the dynamic host configuration protocol (DHCP), which assumes dynamic change of the IP addresses of the network objects and with fast growth of a DNS database, the DNS database manageability required extension of the DNS protocol to allow dynamic updates. Such extension was defined in IETF RFC 2136.
With dynamic update, on the other hand, the primary server for the zone can also be configured to support updates that are initiated by another computer or device that supports dynamic update. For example, it can receive updates from computers or DHCP servers registering A and PTR resource records. Updates are sent using a standard UPDATE message format and can include the addition or deletion of individual resource records (RRs) or sets of resource records (RRsets), as specified in IETF RFC 2136.
Although it is expected that an entity that registers a resource record in a DNS database will remove such record from DNS database when it becomes stale, there is no mechanism to ensure a limited lifetime of the record in the database. In the nascent stages of a network, such as the Internet, the individual removal of stale, antiquated or obsolete records may not prove to be burdensome. However, as a network, such as the Internet, grows to any scale, performance can be adversely affected by the presence of multiple stale resource records. The proliferation of stale resource records itself is generally correlated to the size of the network being managed, and consequently as a network grows (exponentially as is the case with the Internet), there is an even stronger need for a mechanism to dynamically update resource records in a DNS database, by aging records and scavenging for records aged over a threshold point.
The present invention relates to methods and a system for aging and scavenging resource records in a DNS database. DNS resource records that are stored in a DNS database are assigned the timestamps indicating the last time the records were updated. Clients (owners of the resource records) periodically refresh timestamps of the DNS resource records that they registered using standard dynamic DNS update protocol. The DNS server then periodically searches its database for the stale records and deletes them. DNS database zone parameters and DNS server parameters are configured to define when a timestamp for a resource record may be updated, when a resource record may be scavenged (deleted) and which server may perform scavenging of a zone. A non-refresh interval follows the timestamp update instance, a refresh interval follows the non-refresh interval and a scavengable period follows the refresh interval. During the non-refresh interval, an authorized DNS server may neither refresh nor scavenge the associated resource record. During the refresh interval, an authorized DNS server may refresh, but not scavenge the associated resource record. During the scavengable period, the resource record may be scavenged, if the timestamp is not renewed in the meantime. The build up of stale resource records, or records that have outlived their utility, is thus prevented improving system performance and conserving system memory and resources.
Other features of the present invention are described below.